1. Technical Field
The present invention relates to dynamically routing calls received into a central controller for a distributed automatic call distributor arrangement and, in particular, to method and apparatus for routing calls in accordance with a process of simulating a central first-in first-out (FIFO) queue, referred to herein as a simulated or virtual queue, whereby an estimate of the actual call removal rate (the rate at which calls are cleared from an actual queue), the estimated delays a caller will have to wait and the like, may be obtained.
2. Description of the Related Arts FIG. 2 of U.S. Pat. No. 5,530,744, entitled Method and System for Dynamic Customized Call Routing, the '744 patent, incorporated herein by reference as to its entire contents, shows a Telemarketing Operations Performance Management System (TOPMS). TOPMS collects event-based data from Automatic Call Distributors (ACDs) and forwards the data to a central Customer Routing Point (CRP). TOPMS may be regarded as a staging area for collecting traffic data from distributed ACDs and home agents and forwarding the collected data to a processor of the Customer Routing Point. The Customer Routing Point makes call routing decisions for 1-800, 1-900 and 1-888 dialed calls among others for the distributed ACD/home agent arrangement so that calls may be handled as efficiently as possible. In accordance with the '744 patent, call load management, or the loading of incoming calls to be handled by servers at distributed Automatic Call Distributor (ACD) locations and home agent sites, occurs as calls are received into the system on a call-by-call basis according to centralized queue control managed by the CRP and in accordance with information received from the TOPMS with calls being queued at the ACDs. These terms, for example, TOPMS and CRP were used in the '744 patent and do not generally describe the dynamic call routing system of the '744 patent; however, the terms as used therein will be used similarly in the present application whenever possible. Again, TOPMS is a call traffic data collection system that collects all data and forms an integrated view of a customer's business application. Further details about TOPMS may be found in U.S. Pat. No. 5,164,983, also incorporated herein by reference.
As used in the present application, a business application is used by way of example as the reason for the call, for example, a sales application, to make an airline reservation, catalog sales and the like. A CRP is the location of a computer processor for processing the collected data and making call routing decisions to servers at the distributed ACD locations and home sites. While shown in the '744 patent as separate systems, the CRP and TOPMS may be at the same location or distributed or one may share or be combined in functionality with the other.
Automatic call distributors (ACDs) are known switches which are capable of receiving incoming telephone calls and routing the calls to agents manning service positions, referred to herein as agent groups. Automatic call distributor switches are manufactured by several manufacturers including Lucent Technologies Inc. Others known in the art include the Definity, the Rockwell Galaxy or Spectrum, Siemens Rolm brand ACDs, Northern Telcom ACD and Aspect brand ACDs. These collect and output traffic related snapshot data indicating, for example, the number of server positions presently manned, the average call handling time, the number of calls in a queue or the number of available agents and the cumulative number of calls offered whereby, according to the '744 patent, parameters may be estimated that assist in call routing decisions. Thus, the '744 patent emphasizes snapshot data and considers historical data.
In U.S. Pat. No. 5,546,452, there is described a communications system using a central controller to control at least one network and agent system. At column 5, lines 45-60, and with reference to FIG. 2, there is described a process of taking into consideration real-time requested service data as well as historical data in making network control decisions. By way of example and referring to FIG. 1, an airline reservation service may have a number of ACD locations 108.sub.1, 108.sub.2, . . . 108.sub.n dispersed about a country or even throughout the world, for example, in different time zones. FIG. 1 is derived from FIG. 2 of the '744 patent but has been modified in part for better describing the present invention.
Also, agents may operate out of their homes and are known as home agents 110. Only one home agent is shown. These ACD locations 108 and home agents 110 are shown in FIG. 1 comprising a service system 115. Basically data is collected from these locations 108, 110 and expected delays in call waiting times are balanced among the several sites either based on expected delay times, geographic preferences or customer specified routing options. One approach might be a Minimum Expected Delay Algorithm. Another might be to include consideration of geographic preferences.
As calls enter the system to be handled by servers which may be anywhere in the country, the decision on what location to route the call to is centrally managed via a system 120 comprising TOPMS 102 and a customer routing point (CRP) processor 125. The '744 patent approach to dynamically distributing calls via an algorithm at the customer routing point 125 may be referred to herein as an agent pool based approach.
The agent pool based approach requires four or more parameters from the distributed ACDs 108 and home agents 110 of the service system 115 it serves. Unfortunately, different manufacturers of ACDs may or may not provide all these parameters for call routing decisions. These include and may not be limited to the data described above: 1) the total agent pool size at a given point in time for a particular application (such a pool size may change over time of day as ACD offices close and new offices open) 2) the average call handling time (how long typically does it take an agent to handle a call) 3) the number of calls in queue or the number of available agents, and 4) the cumulative number of calls offered (a cumulative counter of calls offered to a site) which together require several input measures to compose. For example, 1) total agent pool size requires all agents currently available, agents currently talking on inbound calls and agents occupied in post call processing as raw input measures.
The availability or busy status of any ACD agent x1, y1, z1 . . . zm may be reported via the TOPMS. The drawing is simplified to suggest that m agents are on duty at each ACD location, when in fact the number of agents at each site typically differs. Availability and busy status of home agents 110 is reported via the network to system 120. This data reporting is shown, for example, in FIG. 1 by way of link 116 to one of the ACD locations, which typically would be the location nearest the home agents 110. On the other hand, non-local (1-800, 1-900 and 1-888) calls ar Control Point (NCP) 100 for controlling the toll network. The CRP 125 is a typical processor comprising application algorithms including the agent-pool based call routing algorithm and memory for storing call traffic data updates forwarded via TOPMS 102.
A major issue associated with agent-pool-based algorithms is that the number of ACD agents x1, y1, z1 . . . zm may be inaccurate due to sharing of agents across queues of ACDs and/or applications. This can be seen from FIG. 2. For example, an airline agent may take international reservations A, domestic reservations B, first class/frequent flyer reservations C and further arrange for air freight D. Let us assume that D is a higher priority than A, C has the same priority as A and B has a lower priority than A. Four groups of agents are shown G1-G4 each having a different specialty. G1 handles international reservations (A) while G2, for example, handles international (A) and domestic (B). Calls for international reservations can be queued in any serving line G1-G4 and when handled by one server, the call disappears from all the queues. Sharing of servers across queues complicates the problem that has to be solved by the agent-pool-based algorithm. Thus, the major issue in predicting expected delay with the agent pool based algorithm is in estimating the total agent pool size when calls can be queued among multiple queues and specialty queues as shown in FIG. 2, thus introducing ambiguities.
Consequently, there remains a need in the art for a more simplified method and apparatus for dynamically routing calls in a distributed ACD environment. The agent-pool-based method is subject to the above-described inaccuracies and ambiguities, relies on the collection of too many data elements and relies on the availability of such data from different vendor ACDs. Moreover, a solution should consider both real-time and historical data if available or collectible from the ACDs or home agents.